#pragma once

#include "common/node_utils.h"

extern "C" {
#include <postgres.h>

#include <nodes/primnodes.h>
}

namespace optimizer {

using Expression = Expr;

}  // namespace optimizer

namespace std {
template <>
struct hash<optimizer::Expression> {
  size_t operator()(const optimizer::Expression &expr) const { return optimizer::NodeUtils::ExprHash(&expr); }
};

}  // namespace std
